package com.sihan.framework.etm.mapper;

import com.framework.mybatis.mapper.BaseMapper;
import com.sihan.framework.etm.entity.RolePermission;
import java.util.Date;
import java.util.List;
import java.util.Set;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

@Mapper
public interface RolePermissionMapper extends BaseMapper<RolePermission, String> {

  /**
   * 插入角色，对应多个权限
   *
   * @param roleId 角色Id
   * @param permissionIds 该角色对应的权限Ids
   * @return 数据库影响行数
   */
  int insertRole(@Param("roleId") String roleId, @Param("permissionIds") List<String> permissionIds,
      @Param("createTime") Date createTime, @Param("createUser") String createUser);

  /**
   * 更新角色集查询角色集所对应的权限信息
   *
   * @param roleSet 角色集
   * @return 该角色集对应的权限信息
   */
  Set<String> selectPermissionByRoles(@Param("roles") Set<String> roleSet);

  /**
   * 根据角色Id选择其所对应的权限Ids
   */
  Set<String> selectPermissionIdsByRoleId(@Param("roleId") String roleId);
  
  /**
   * 根据角色Id查询其所对应的按钮权限Ids
   */
  Set<String> selectPermissionIdsByRoleIdB(@Param("roleId") String roleId);

  /**
   * 用户名查询其对应的所有权限Ids
   */
  Set<String> selectPermissionIdsByUsername(String username);
  /**
   * 
   * @description  用户id查询用户权限
   * @param userId
   * @return
   * @auther 韩兵
   * @Date 2020年7月14日
   * @return Set<String>
   */
  Set<String> selectPermissionByUserId(@Param("userId") String userId);
}